﻿using System.IO;
using Styx;
using Styx.Helpers;
using Styx.Common;

namespace GatherSafe
{
    public class MIRsettings : Settings
    {
        public static readonly MIRsettings Instance = new MIRsettings();

        public MIRsettings()
            : base(Path.Combine(Utilities.AssemblyDirectory, string.Format(@"Plugins/GatherSafe/Settings/GatherSafe-Settings-{0}.xml", Styx.StyxWoW.Me.Name.ToString())))
        {

        }

        [Setting, DefaultValue(200)]
        public int PlayerRange { get; set; }

        [Setting, DefaultValue(25)]
        public int MobDistance { get; set; }

        [Setting, DefaultValue(1)]
        public int MobCount { get; set; }

        [Setting, DefaultValue(100)]
        public int PlayerDistance { get; set; }

        [Setting, DefaultValue(true)]
        public bool PlayerDetection { get; set; }

        [Setting, DefaultValue(true)]
        public bool NodeMobBlacklist { get; set; }

        [Setting, DefaultValue(true)]
        public bool NodePlayerBlacklist { get; set; }

        [Setting, DefaultValue(true)]
        public bool NodeBlacklist { get; set; }

        [Setting, DefaultValue(false)]
        public bool TimedLogout { get; set; }

        [Setting, DefaultValue(120)]
        public int LogoutTime { get; set; }

        [Setting, DefaultValue(true)]
        public bool DCTarget { get; set; }

        [Setting, DefaultValue(25)]
        public int DCTargetTime { get; set; }

        [Setting, DefaultValue(true)]
        public bool DCFollow { get; set; }

        [Setting, DefaultValue(120)]
        public int DCFollowTime { get; set; }

        [Setting, DefaultValue(20)]
        public int ClearListTime { get; set; }

        [Setting, DefaultValue(true)]
        public bool FollowNotifications { get; set; }

        [Setting, DefaultValue(0)]
        public int FollowNotificationsTimeStartAfter { get; set; }

        [Setting, DefaultValue(5)]
        public int FollowNotificationsTime { get; set; }

        [Setting, DefaultValue(true)]
        public bool TargetNotifications { get; set; }

        [Setting, DefaultValue(0)]
        public int TargetNotificationsTimeStartAfter { get; set; }

        [Setting, DefaultValue(5)]
        public int TargetNotificationsTime { get; set; }

        [Setting, DefaultValue(false)]
        public bool PlayerCloseToNode { get; set; }

        [Setting, DefaultValue(10)]
        public int PlayerCloseToNodeRange { get; set; }

        [Setting, DefaultValue(0)]
        public int NotificationColor { get; set; }

        [Setting, DefaultValue(120)]
        public int BlacklistTime { get; set; }

        [Setting, DefaultValue(false)]
        public bool ScanUnmounted { get; set; }

    }
}